{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 拾遗APP的api方面应用。\n",
    "### 第一部分\n",
    "首先定位用户的IP地址。定位任务IP，我们需要从高德那里得到密钥，然后写进去请求地址，输入相应的地址信息，我们就会得到了相关的IP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests,json\n",
    "import pandas as pd\n",
    "高德api_key = \"33c844caa1de284dd24d8113e95464af\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "ip_location = \"114.247.50.2\" "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def ip(key,ip):\n",
    "    url ='https://restapi.amap.com/v3/ip?parameters'\n",
    "    params = {\n",
    "        \"key\":key,\n",
    "        \"ip\":ip\n",
    "    }\n",
    "    response = requests.get(url=url,params=params)\n",
    "    return response.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'status': '1',\n",
       " 'info': 'OK',\n",
       " 'infocode': '10000',\n",
       " 'province': '北京市',\n",
       " 'city': '北京市',\n",
       " 'adcode': '110000',\n",
       " 'rectangle': '116.0119343,39.66127144;116.7829835,40.2164962'}"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ip(高德api_key,ip_location)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 生成静态地图\n",
    "请求到用户IP之后，我们将IP地址导入。\n",
    "\n",
    "导入用户的IP地址后，生成当地用户附近的失物招领所地图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "from PIL import Image\n",
    "from io import BytesIO\n",
    "中山大学南方学院_location='113.679287,23.632575'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def staticmap(key,location,zoom):\n",
    "    url_map = \"https://restapi.amap.com/v3/staticmap?parameters\"\n",
    "    params_cmp = {\n",
    "    \"key\":key,\n",
    "    \"location\":location,\n",
    "    \"zoom\":zoom\n",
    "    }\n",
    "    r = requests.get(url=url_map,params=params_cmp)\n",
    "    results =Image.open(BytesIO(r.content))\n",
    "    return results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<PIL.PngImagePlugin.PngImageFile image mode=P size=400x400 at 0x2508EA72EE0>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "staticmap(高德api_key,中山大学南方学院_location,10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 生成路线规划\n",
    "得到用户ip和相关地理位置信息后，根据用户地址和失物招领所的地理位置产生运行规划给用户一条最优的路线，省力气，省时间，方便快捷。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "origin = \"广东省广州市中山大学南方学院\"\n",
    "destination = \"广州市从化区龙岗\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def walking(key,origin,destination):\n",
    "    url ='https://restapi.amap.com/v3/direction/walking?parameters'\n",
    "    params = {\n",
    "        \"key\":key,\n",
    "        \"origin\":origin,\n",
    "        \"destination\":destination\n",
    "    }\n",
    "    response = requests.get(url=url,params=params)\n",
    "    return pd.json_normalize(response.json()['route']['paths'][0]['steps'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "目的地_龙岗='113.668051,23.600869'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "             instruction distance duration\n",
      "0             向东步行101米右转      101       81\n",
      "1         向南步行199米向右前方行走      199      159\n",
      "2             向西步行159米左转      159      127\n",
      "3             向南步行237米左转      237      190\n",
      "4         向南步行498米向右前方行走      498      398\n",
      "5        向西南步行723米向左后方行走      723      578\n",
      "6        向东南步行412米向右前方行走      412      330\n",
      "7        沿乌土街向南步行1381米右转     1381     1105\n",
      "8        沿乌土街向西南步行165米直行      165      132\n",
      "9       沿934县道向西步行118米直行      118       94\n",
      "10  沿桃园东路向西南步行673米向右前方行走      673      538\n",
      "11      沿桃园东路向西南步行247米右转      247      198\n",
      "12      沿龙泉路向北步行44米到达目的地       44       35\n"
     ]
    }
   ],
   "source": [
    "df=walking(高德api_key,中山大学南方学院_location,目的地_龙岗)\n",
    "results = df.loc[:, ['instruction', 'distance', 'duration']]\n",
    "print(results)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第二部分是通用物体的识别\n",
    "\n",
    "我们到百度AI获取相应的密钥和所要反馈的地址，输入我们的函数中然后再把图片上传扫描客户就能得到图片的分类推荐。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'refresh_token': '25.140276ee24e9cf1a1567d3fd0ef0c8e7.315360000.1926942443.282335-23582963', 'expires_in': 2592000, 'session_key': '9mzdWu7SqyHUGgiNccPJgL3GZDTkiq8bHqUm/NiXwCS2Y+cfyAHFDhB2mds/5iDgLKsEHYfLIbyfrt61x+7BA1gM5eXgUA==', 'access_token': '24.a2361e98d08511a8d791232bf35ac4c6.2592000.1614174443.282335-23582963', 'scope': 'public vis-classify_dishes vis-classify_car brain_all_scope vis-classify_animal vis-classify_plant brain_object_detect brain_realtime_logo brain_dish_detect brain_car_detect brain_animal_classify brain_plant_classify brain_ingredient brain_advanced_general_classify brain_custom_dish brain_poi_recognize brain_vehicle_detect brain_redwine brain_currency brain_vehicle_damage wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test权限 vis-classify_flower lpq_开放 cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base smartapp_mapp_dev_manage iop_autocar oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi smartapp_opensource_recapi fake_face_detect_开放Scope vis-ocr_虚拟人物助理 idl-video_虚拟人物助理 smartapp_component smartapp_search_plugin', 'session_secret': '46385103071722de2487ad9068a32bf1'}\n"
     ]
    }
   ],
   "source": [
    "# encoding:utf-8\n",
    "import requests \n",
    "\n",
    "# client_id 为官网获取的AK， client_secret 为官网获取的SK\n",
    "host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=uUGUA5h0aEXPua2G6CvVoEs0&client_secret=vBkXYj29hUVti5dwcCULGZLV0QOsBaWj'\n",
    "response = requests.get(host)\n",
    "if response:\n",
    "    print(response.json())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'log_id': 6995934093597419257, 'result_num': 5, 'result': [{'score': 0.66459, 'root': '商品-玩具', 'keyword': '玩具'}, {'score': 0.442732, 'root': '非自然图像-图像素材', 'keyword': '立体字'}, {'score': 0.292187, 'root': '非自然图像-屏幕截图', 'keyword': '屏幕截图'}, {'score': 0.150025, 'root': '商品-玩具', 'keyword': '骰子'}, {'score': 0.007765, 'root': '商品-玩具', 'keyword': '响板'}]}\n"
     ]
    }
   ],
   "source": [
    "# encoding:utf-8\n",
    "\n",
    "import requests\n",
    "import base64\n",
    "\n",
    "'''\n",
    "通用物体和场景识别\n",
    "'''\n",
    "\n",
    "request_url = \"https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general\"\n",
    "# 二进制方式打开图片文件\n",
    "f = open('C:/Users/HP/Desktop/ear.jpg', 'rb')\n",
    "img = base64.b64encode(f.read())\n",
    "\n",
    "params = {\"image\":img}\n",
    "access_token = '24.cd6760ead69cbf30a95cf7633b7f5e6f.2592000.1614074016.282335-23582963'\n",
    "request_url = request_url + \"?access_token=\" + access_token\n",
    "headers = {'content-type': 'application/x-www-form-urlencoded'}\n",
    "response = requests.post(request_url, data=params, headers=headers)\n",
    "if response:\n",
    "    print (response.json())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.1"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
